const { ContentTags } = require('../config/Sequelize')
const { CriteriaExample } = require('../utils/CriteriaExample')

/**
 * 查询内容标签
 * @param {*} tags 
 * @returns 
 */
const selecTagsList = async (tags = {}) => {
  const tagsExample = new CriteriaExample(tags)
  console.log(tags)
  tagsExample.and()
    .like('name')
  // const deptExample = new CriteriaExample(tags)
  const page = tagsExample.getPage()
  console.log(page)
  const { count: total, rows: data } = await ContentTags.findAndCountAll({
    where: tagsExample.getWhere(),
    order: [['updatedAt', 'DESC'], ['createdAt', 'DESC']],
    ...page
  })
  return { page: tagsExample.page, pageSize: tagsExample.pageSize, total: total, data }
}

/**
 * 根据内容标签id查询内容标签信息
 * @param {*} id 
 * @returns 
 */
const selectTagsById = async (id) => {
  const tags = await ContentTags.findOne({
    where: { tagId: id },
  })
  return tags
}


/**
 * 添加内容标签信息
 * @param {*} tags 
 * @returns 
 */
const addTags = async (tags) => {
  return ContentTags.create(tags)
}

/**
 * 更新内容标签信息
 * @param {*} tags 
 * @returns 
 */
const updateTags = async (tags) => {
  return ContentTags.update(tags, {
    where: {
      tagId: tags.tagId
    }
  })
}

/**
 * 删除内容标签信息
 * @param {*} tags 
 * @returns 
 */
const deleteTags = async (id) => {
  return ContentTags.destroy({
    where: { tagId: id }
  })
}

module.exports = {
  selecTagsList,
  addTags,
  updateTags,
  deleteTags,
  selectTagsById
}